package com.avcdata.aoscustommade.utils;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.Random;
import java.util.regex.Pattern;

/**
 * Created by lucasey on 2017/2/6.
 */

public class PublicTools {

    private final static Pattern emailer = Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");

    private final static Pattern mobile = Pattern.compile("^(13|14|15|17|18)[0-9]{9}$");


    /**
     * 判断给定字符串是否空白串。 空白串是指由空格、制表符、回车符、换行符组成的字符串 若输入字符串为null或空字符串，返回true
     *
     * @param input
     * @return boolean
     */
    public static boolean isEmpty(String input) {
        if (input == null || input.equals("null") || "".equals(input))
            return true;

        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {
                return false;
            }
        }
        return true;
    }

    /**
     * 输入一个小数 进行四舍五入,value是String类型的小数,newScale是新小数的规模,即保留几位小数
     *
     * @param value
     * @param newScale
     */
    public static String BigDecimalDouble(String value, int newScale) {
        if (isEmpty ( value )) {
            return "0.00";
        }
        BigDecimal mData = new BigDecimal ( value ).setScale ( newScale,
                BigDecimal.ROUND_HALF_UP );
        return mData.toString ();
    }

    /**
     * 判断是不是一个合法的电子邮件地址
     *
     * @param email
     * @return
     */
    public static boolean isEmail(String email) {
        if (email == null || email.trim().length() == 0)
            return false;
        return emailer.matcher(email).matches();
    }

    /**
     * 判断手机号是否合法
     *
     * @param mobiles
     * @return
     */
    public static boolean isMobileNO(String mobiles) {
        return mobile.matcher(mobiles).matches();
    }

    /**
     * 时间戳转换成yyyy-MM-dd形式
     *
     * @param num
     * @return
     */
    public static String day(long num) {
        SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd",
                Locale.CHINA);

        return format.format(num);

    }

    /**
     * 获取六位随机数
     *
     * @return
     */
    public static String getCode() {
        String mCode = "";
        Random random = new Random();

        for (int i = 0; i < 6; i++) {
            mCode += random.nextInt(10);

        }
        return mCode;
    }

}
